﻿#ifndef WRWORKSERVICESGUIVIEW_H
#define WRWORKSERVICESGUIVIEW_H

#include "WRWorkServiceListModel.h"

#include <QLabel>
#include <QSplitter>
#include <QPushButton>
#include <QTextEdit>
#include <QTableView>

//表示工作服务界面视图。
class WRWorkServicesGuiView : public QSplitter
{
    Q_OBJECT

 private:
    WRWorkServiceListModel* m_listModel;
    int m_current;

    QLabel* m_uuidLabel;
    QLabel* m_titleLabel;
    QLabel* m_statusLabel;
    QPushButton* m_switchButton;
    QTextEdit* m_descriptionBox;
    QTableView* m_tableView;

    //创建界面组件。
    void createComponents(void);
    //更新当前选中的信息。
    void updateCurrent(void);

private slots:
    //当状态改变后调用此方法。
    void onStatusChanged(void);
    //当按钮点击后调用此方法。
    void onButtonClicked(void);
    //当数据改变后调用此方法。
    void onDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight);
    //当选择行改变后调用此方法。
    void onCurrentRowChanged(const QModelIndex &current, const QModelIndex &previous);

public:
    //初始化界面视图。
    WRWorkServicesGuiView(const WRObjRef<WRWorkDaemon>& daemon, QWidget* parent = 0);
    //初始化界面视图。
    WRWorkServicesGuiView(WRWorkDomain* domain, QWidget* parent = 0);
    //初始化当前对象所占用的相关资源。
    ~WRWorkServicesGuiView(void);

    //打开界面显示。
    void open(void);
    //关闭界面显示。
    void close(void);
};

#endif // WRWORKSERVICESGUIVIEW_H
